#ifndef GAMEENGINE_H_
#define GAMEENGINE_H_

#include "Clock.h"
#include "Event.h"

class Window;
class GameState;

class GameEngine
{
public:
    GameEngine();
    virtual ~GameEngine();

    void start();
    void quit();
    void setGameState(GameState* state);

private:
    void init();
    void clean();
    void handleEvents();
    void handleEvent(const Event& event);

    Window* window;
    bool programRunning;
    GameState* currentGameState;
    Clock clock;
};

#endif
